---说明---
--测试鼠标：罗技G300s
--测试延迟：80-130ms之间
--简介：宏分两部分，第一部分是砸出神目圈的宏，第二部分是双黑满输出的宏，两部分都包含原力波和打满5层被动，剩余的操作比如跑神目圈、打满两发中间的能量、刷黄道，都需要自己操作
--开宏时间：火元素的时候开神木一发宏，在火元素时神木一发宏会打出神目圈，神目圈持续7秒，这段时间跑神目圈加打电刑攒能量(4秒左右)，奥元素之前打出第二发
--可以修改的地方：配置项开始到配置项结束中间的内容可以自行修改，不好找的按键可以查看下面选项中的提示

--选项 "scrolllock", "numlock", "capslock"
--选项 左侧alt:"lalt", 右侧alt:"ralt",   左侧shift:"lshift", 右侧shift:"rshift",   左侧ctrl:"lctrl", 右侧ctrl:"rctrl"
--选项 鼠标左键:Left(1)，鼠标右键:Right(2)
--选项 鼠标中键:3
--选项 鼠标左侧后方：4，鼠标左侧前方：5
--选项 鼠标右侧后方：6，鼠标右侧前方：7
--源码地址 https://gitee.com/consolelog/d3-logitech


---配置项 开始---
shuanghei_flag = 1 --双黑一发宏开关，1为开启，0为关闭，默认开启
shenmu_flag = 1 --神木一发宏开关，1为开启，0为关闭，默认开启

zhanli = "lshift" --强制原地站立按键
shuanghei = 7   --双黑一发宏开启按键，默认为鼠标右侧前方按键
shenmu = 6      --神木一发宏开启按键，默认为鼠标右侧后方按键
anjian = { "q", "w", "e", "r", "Left", "Right" }--技能栏按键设置，顺序为：风暴护甲、原力之波、御法者、陨石术、电刑、冰霜射线，风暴护甲不需要设置，强迫症而已


shiqu_flag = 0 --快速拾取开关，1为开启，0为关闭，默认关闭
fenjie_flag = 0 --快速分解开关，1为开启，0为关闭，默认关闭
dubo_flag = 0 --快速赌博开关，1为开启，0为关闭，默认关闭

shiqu = 1 --快速拾取按键
dubo = 2 --快速赌博按键
fenjie = 4 --快速分解按键

fuzhu = "lalt" --辅助键
bili = { 16, 9 } --屏幕比例
---配置项 结束---

---全局设置---
--启用鼠标按钮事件
EnablePrimaryMouseButtonEvents(true)

--技能从左往右顺序
fengbaohujia = anjian[1] --风暴护甲技能栏位置
yuanlizhibo = anjian[2] --原力之波技能栏位置
yufazhe = anjian[3] --御法者技能栏位置
yunshishu = anjian[4] --陨石术技能栏位置
dianxing = anjian[5] --电刑技能栏位置
bingshuangshexian = anjian[6] --冰霜射线技能栏位置

shubiaoanxia = "MOUSE_BUTTON_PRESSED" --鼠标事件

wuceng = 1500 --5层被动时间

--技能按下
function jineng_down(jineng)
    if jineng == "Left" then
        PressMouseButton(1)--点击左键
    elseif jineng == "Right" then
        PressMouseButton(3)--点击右键
    else
        PressKey(jineng)
    end
end

--技能释放
function jineng_up(jineng)
    if jineng == "Left" then
        ReleaseMouseButton(1)--释放左键
    elseif jineng == "Right" then
        ReleaseMouseButton(3)--释放右键
    else
        ReleaseKey(jineng)
    end
end

--神木一发
function shenmu_yifa()
    --原力波
    jineng_down(yuanlizhibo)
    Sleep(20)
    jineng_up(yuanlizhibo)
    Sleep(550)
    --攒5层被动
    zan_wuceng_beidong()
    Sleep(20)
    --散奥一发
    san_ao()
end

--攒5层被动
function zan_wuceng_beidong()
    PressKey(zhanli)
    Sleep(20)
    jineng_down(dianxing)
    Sleep(1400)
    jineng_up(dianxing)
    ReleaseKey(zhanli)
end

--散奥一发
function san_ao()
    jineng_down(yunshishu)
    Sleep(20)
    jineng_up(yunshishu)
    Sleep(300)
    PressKey(zhanli)
    Sleep(20)
    jineng_down(dianxing)
    Sleep(500)
    jineng_up(dianxing)
    Sleep(20)
    jineng_down(bingshuangshexian)
    Sleep(600)
    jineng_up(bingshuangshexian)
    ReleaseKey(zhanli)
end

--双黑一发
function shuanghei_yifa()
    --原力波
    jineng_down(yuanlizhibo)
    Sleep(20)
    jineng_up(yuanlizhibo)
    Sleep(550)
    --攒5层被动
    zan_wuceng_beidong()
    Sleep(20)
    --变身一发
    bianshen_yifa()
end

--[[
5层被动陨石 600W
5层被动陨石+引导 6000W
5层被动陨石+引导+黑人 2.4E 3.41E

]]

--变身一发
function bianshen_yifa()
    jineng_down(yunshishu)
    jineng_up(yunshishu)
    Sleep(50)
    PressKey(zhanli)
    jineng_down(dianxing)
    Sleep(950)
    jineng_up(dianxing)
    ReleaseKey(zhanli)
    Sleep(200)
    jineng_down(bingshuangshexian)
    Sleep(50)
    jineng_down(yufazhe)
    jineng_up(yufazhe)
    Sleep(400)
    jineng_up(bingshuangshexian)
end

--赌博
function du_bo()
    k = 50
    while k > 0
    do
        PressAndReleaseMouseButton(3)
        Sleep(5)
        k = k - 1
    end
end

--拾取
function shi_qu()
    k = 25
    while k > 0
    do
        PressAndReleaseMouseButton(1)
        Sleep(15)
        k = k - 1
    end
end

--分解
function fen_jie()
    MoveMouseToVirtual(6000 * 16 * bili[2] / 9 / bili[1], 17000)
    Sleep(100)
    PressAndReleaseMouseButton(1)
    Sleep(50)
    k = 0
    while k < 60
    do
        X = k % 10-- 分解列
        Y = math.floor(k / 10)--分解行
        MoveMouseToVirtual(65535 - (65535 - 49000 - 1700 * X) * 16 * bili[2] / 9 / bili[1], 36000 + 3000 * Y)
        Sleep(1)
        PressAndReleaseMouseButton(1)
        Sleep(1)
        PressAndReleaseKey("Enter")
        Sleep(1)
        PressAndReleaseMouseButton(1)
        Sleep(1)
        PressAndReleaseKey("Enter")
        Sleep(1)
        k = k + 1
    end
end

function OnEvent(event, arg)
    --神目一发
    if (event == shubiaoanxia and arg == shenmu and not IsModifierPressed(fuzhu) and shenmu_flag == 1) then
        shenmu_yifa()
    end
    --双黑一发
    if (event == shubiaoanxia and arg == shuanghei and not IsModifierPressed(fuzhu) and shuanghei_flag == 1) then
        shuanghei_yifa()
    end

    --快速拾取
    if (event == shubiaoanxia and arg == shiqu and IsModifierPressed(fuzhu) and shiqu_flag == 1) then
        shi_qu()
    end

    --快速赌博
    if (event == shubiaoanxia and arg == dubo and IsModifierPressed(fuzhu) and dubo_flag == 1) then
        du_bo()
    end

    --快速分解
    if (event == shubiaoanxia and arg == fenjie and IsModifierPressed(fuzhu) and fenjie_flag == 1) then
        fen_jie()
    end


end